1. Field of the Invention
The present invention relates to an error correction coding method and a post-Viterbi processor, and more particularly, to a method of detecting an occurrence of an error event in data, and an apparatus for the same.
2. Description of the Related Art
It is well known that the performance of a partial response maximum likelihood (PRML) system can be improved by employing a post-Viterbi processor that corrects dominant error events at the output of a detector. The idea is that once an error is detected, an attempt is made to correlate an estimated error signal with each of known forms of the dominant error patterns and identify the most likely error pattern and its position within a code word. The estimated error signal is constructed by taking a difference between an actual equalizer output and a Viterbi detector output stream convolved with an equalizer target response.
FIG. 1 illustrates a conventional post-Viterbi processor. Referring FIG. 1, the post-Viterbi processor comprises a target encoder 110, a syndrome check unit 111, a bank of error correlation filters 114, a selector 116, and an error correction unit 120.
Data is encoded by an error detection coding (EDC) encoder 102 before it is transmitted through a readback channel 104, which is, as well known, a part of a PRML system. An equalizer 106 equalizes data received through a readback channel 104 and then a maximum likelihood (ML) detector 108 detects the encoded data from the equalized data based on Viterbi algorithm. However, the detected data from the ML detector 108 may contains errors caused by noise on the readback channel 104.
The post-Viterbi processor, shown in FIG. 1, performs error correction on dominant error events, so that the possibility of error correction can be increased.
FIG. 2 shows a mathematical model of the post-Viterbi processor shown in FIG. 1. Assuming that a is recorded data, a′ is recorded data estimated by an ML detector 208 and P(D) is a partial response polynomial, then an output of an equalizer 208 y and error e are expressed as Y=a*p+n and E=(a−a′)*p+n respectively. Here, n is total noise and * denotes a convolution operation.
In general, cyclic redundancy check (CRC) is used as an EDC based on a syndrome computation unit 218. A conventional CRC code usually plays a single role in the detection of an occurrence of a dominant error event in a codeword, not yielding any information about the type and the position of the detected dominant error event. To solve this problem, the post-Viterbi processor was introduced to produce the type and the position of the detected dominant error event.
The idea of the post-Viterbi processor is that once the error is detected, an attempt is made to correlate the estimated error signal with each of known forms of the dominant error patterns and identify the most likely error pattern and its position within the codeword. The estimated error signal is constructed by taking a difference between the actual equalizer output and the Viterbi detector output stream convolved with the equalizer target response.
A bank of error correlation filters 214 comprises of a plurality of matched filters, each of which being associated with one of dominant error events, respectively. Accordingly, each of the matched filters produces a likelihood value for its assigned type of error events. A selector 216 selects the largest likelihood value among outputs of the plurality of matched filters. A correction unit 220 corrects error, likely occurred in the estimated data by noise predictive Viterbi (NPV) decoding with the syndromes computed in the syndrome computation unit 218 and the error type and the position from the selector 216.
However, since the set of syndromes from the syndrome computation unit 218 cannot differ from the type of error events, the conventional post-Viterbi processor has a higher miscorrection probability. The dominant detectable error events are ±[2, −2], ±[2, −2, 2], ±[2, −2, 2, −2], ±[2, −2, 2, −2, 2], ±[2, −2, 0, 2, −2] and ±[2, −2, 2, −2, 2, −2] at density 1.4 under the assumption of 50% AWGN and 50% medium noise in perpendicular recording and the six error correlation filters are associated with these error events. Therefore, once an error detection code detects any dominant error events, they are corrected based on the information about a type and a location of the error events provided by the bank of the error correlation filters. But, as mentioned earlier, the type and position of an occurred dominant error event are determined by the output of a bank of error correlation filter only, so all occurred dominant error events are not possible to be corrected completely, which is a miscorrection.
Thus, there is a need for an error correction scheme that can produce a unique set of syndromes for each dominant error event so that the type of an occurred dominant error event can be immediately determined by one syndrome computation without any ambiguity, which almost eliminates the misselection in a conventional post-Viterbi processor for a single dominant error event within a codeword.